package facade;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.ParameterMode;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.StoredProcedureQuery;
import javax.persistence.TypedQuery;

import org.jboss.weld.metadata.TypeStore;

import entidad.Agencia;

/**
 * Session Bean implementation class AgenciaFacade
 */
@Stateless
@LocalBean
public class AgenciaFacade implements AgenciaFacadeRemote {

	@PersistenceContext(unitName = "sgh001EJB")
	
    private EntityManager em;
	@EJB
	private ErroresFacadeRemote erroresFacadeRemote;
    /**
     * Default constructor. 
     */
    public AgenciaFacade() {
        // TODO Auto-generated constructor stub
    }
    @Override
	public List<Agencia> Listar() {
		// TODO Auto-generated method stub
        Query query = em.createQuery(
                "SELECT a FROM Agencia a");
        @SuppressWarnings("unchecked") 
        List<Agencia> result = query.getResultList();
        return result;
	}

	@Override
	public String Save(Agencia agencia) {
		// TODO Auto-generated method stub

	
		Query query = em.createNativeQuery("select * from sp_insert_update_agencia(?1,?2,?3,?4,?5,?6)");
			query.setParameter(1, agencia.getNroRuc());
			query.setParameter(2, agencia.getRazonSocial());
			query.setParameter(3, agencia.getDireccion());
			query.setParameter(4, agencia.getTelefono());
			query.setParameter(5, agencia.getContacto());
			query.setParameter(6, agencia.getPagWeb());
		
		//int errores = (int)query.getResultList().get(0);
			List<Object> lista=query.getResultList();
		System.out.println(lista.get(0).toString());
		String msjError = erroresFacadeRemote.searchCodError(Integer.parseInt(lista.get(0).toString()));
		return msjError;
		//em.persist(agencia);
	}
	public void Modificar(Agencia agencia){
		em.merge(agencia);
	}
	public void Eliminar(Agencia agencia){
		em.remove(agencia);
	}
	

}
